// 箭头函数与this

const person = {
    name : 'tom',
    // 函数声明 this 指向使用该函数的对象
    // sayHi: function () {
    //     console.log(`my name is ${this.name}`);
    // }
    // 箭头函数当中没有this的机制 指向定义外部 即与外部this一致
    sayHi: () => {
        console.log(`my name is ${this.name}`);
    },
    sayHiAsync: function () {
        // const _this = this
        // //此时setTimeout内部的函数会在全局对象中调用 因此this指向window  
        // setTimeout(function () {
        //     console.log(_this.name);
        // }, 1000)

        //使用箭头函数  this会获取外层的this
        setTimeout(() => {
            console.log(this.name);
        }, 1000)
    }
}

person.sayHiAsync()